@CI
3年前 提问
1个回答

Cobaltstrike 去除特征有什么好的办法

007bug
3年前

1.更改默认端口

方法一、直接编辑teamserver进行启动项修改。

vi teamserver

方法二、启动时候指定server_port

java -XX:ParallelGCThreads=4 -Duser.language=en -Dcobaltstrike.server_port=50505 -Djavax.net.ssl.keyStore=./cobaltstrike.store -Djavax.net.ssl.keyStorePassword=123456 -server -XX:+AggressiveHeap -XX:+UseParallelGC -Xmx1024m -classpath ./cobaltstrike.jar server.TeamServer xxx.xxx.xx.xx test google.profile

2.去除证书特征

(1)进入CS目录

图片

查看keytool -list -v -keystore cobaltstrike.store 证书情况,输入默认密码123456回车,可以看到所有者、发布者中Cobalt Strike相关字样。

图片

(2)然后修改 keytool

keytool是一个Java 数据证书的管理工具,使用如下:

-keytool -keystore cobaltstrike.store -storepass 密码

-keypass 密码

-genkey -keyalg RSA

-alias google.com -dname “CN=(名字与姓氏),

OU=(组织单位名称), O=(组织名称),

L=(城市或区域名称),

ST=(州或省份名称),

C=(单位的两字母国家代码)。

keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias taobao.com -dname “CN=US, OU=”taobao.com“, O=“Sofatest”, L=Beijing, ST=Cyberspace, C=CN”

然后 在观测keytool。

图片

这时发现所以关于cobaltstrike的字眼都被替换掉了。

3.绕过流量审计

(1)高信誉服务伪造

传输过程中,把流量伪造成高信誉的网站,比如Google 、bing等 。

现在的大多数硬件WAF防护设备都能检测出来CS的流量特征,所以我们必须要修改CS的流量特征,CS的流量由malleable C2配置来掌控的,所以我们需要定向去配置这个C2。

Malleable C2 是一种特定领域的语言,主要用来控制“Cobalt Strike Beacon”攻击载荷中的网络指针。

去配置之前先了解下有关Beacon的通信基础:

图片

从Cobalt Strike 3.6版开始,可以将HTTP动词从POST更改为GET。Beacon忽略了此POST请求(配置文件中的http-post服务器)的响应。默认情况下,Beacon将HTTP POST请求用于上述步骤#3和#4。根据您的目标环境或您正在模拟的流量,可能会注意到交替的GET和POST请求。在这种情况下,请将http-post部分的动词设置为GET。

Beacon与teamserver端c2的通信逻辑:

1.stager的beacon会先下载完整的payload执行

2.beacon进入睡眠状态,结束睡眠状态后用 http-get方式 发送一个metadata(具体发送细节可以在malleable_profie文件里的http-get模块进行自定义),metadata内容大概是目标系统的版本,当前用户等信息给teamserver端 。

3.如果存在待执行的任务,则teamserver上的c2会响应这个metadata发布命令。beacon将会收到具体会话内容与一个任务id。

4.执行完毕后beacon将回显数据与任务id用post方式发送回team server端的C2(细节可以在malleable_profile文件中的http-post部分进行自定义),然后又会回到睡眠状态。

许多 Beacon 指标由一个 C2 拓展文件控制。一个 C2 拓展文件由设置和数据转换组成。数据转换是一 个简单的程序,它指定如何转换数据并将其存储在事务中。转换和存储数据的同一程序,向后解释,还从事务中提取和恢复数据。